using System;
using System.Text.Json.Serialization;
using Admin.NET.Core;
using Newtonsoft.Json;
using SqlSugar;

namespace Admin.NET.Application.Entity.Business;

public class QuestDbEntityTenant
{
	/// <summary>
	/// 雪花Id
	/// </summary>
	[SugarColumn(ColumnName = "Id", ColumnDescription = "主键Id", IsPrimaryKey = true, IsIdentity = false)]
	public virtual long Id { get; set; }

	/// <summary>
	/// 创建时间
	/// </summary>
	[SugarColumn(ColumnDescription = "创建时间", IsOnlyIgnoreUpdate = true)]
	public virtual DateTime? CreateTime { get; set; }

	/// <summary>
	/// 更新时间
	/// </summary>
	[SugarColumn(ColumnDescription = "更新时间")]
	public virtual DateTime? UpdateTime { get; set; }

	/// <summary>
	/// 创建者Id
	/// </summary>
	[SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)]
	public virtual long? CreateUserId { get; set; }

	/// <summary>
	/// 创建者
	/// </summary>
	[Newtonsoft.Json.JsonIgnore]
	[System.Text.Json.Serialization.JsonIgnore]
	[Navigate(NavigateType.OneToOne, "CreateUserId")]
	public virtual SysUser CreateUser { get; set; }

	/// <summary>
	/// 修改者Id
	/// </summary>
	[SugarColumn(ColumnDescription = "修改者Id")]
	public virtual long? UpdateUserId { get; set; }

	/// <summary>
	/// 修改者
	/// </summary>
	[Newtonsoft.Json.JsonIgnore]
	[System.Text.Json.Serialization.JsonIgnore]
	[Navigate(NavigateType.OneToOne, "UpdateUserId")]
	public virtual SysUser UpdateUser { get; set; }

	/// <summary>
	/// 软删除
	/// </summary>
	[SugarColumn(ColumnDescription = "软删除")]
	public virtual bool IsDelete { get; set; } = false;


	/// <summary>
	/// 租户Id
	/// </summary>
	[SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
	public virtual long? TenantId { get; set; }
}
